3
תגובות
סטרינג זהה, מזוהה כשונה.
פתח
mmm
,
אני משווה בין טקסט מסוים, לטקסט שקיבלתי בGET.
הטקסטים זהים לחלוטין, לא פספסתי.
הטקסטים הם למעשה כתובות URL שאני שואב מהם מידע.
הסטרינג הראשון, נכתב ידנית במשתנה, והקישור נפתח מצוין.
הסטרינג השני מגיע מGET, וכאמור, מכיל את אותו טקסט בדיוק, אך מחזיר 404.
בדקתי את הקידוד של 2 הסטרינגים, זהה לחלוטין.
השוואתי MD5 של הטקסטים, הHASH שונה.
לאחר המרה של שני הטקסטים לקידוד אחר, אך זהה, שניהם מקבלים MD5 זהה.
רעיונות? מה גורם לסטרינגים להיות שונים זה מזה?
הטקסטים זהים לחלוטין, לא פספסתי.
הטקסטים הם למעשה כתובות URL שאני שואב מהם מידע.
הסטרינג הראשון, נכתב ידנית במשתנה, והקישור נפתח מצוין.
הסטרינג השני מגיע מGET, וכאמור, מכיל את אותו טקסט בדיוק, אך מחזיר 404.
בדקתי את הקידוד של 2 הסטרינגים, זהה לחלוטין.
השוואתי MD5 של הטקסטים, הHASH שונה.
לאחר המרה של שני הטקסטים לקידוד אחר, אך זהה, שניהם מקבלים MD5 זהה.
רעיונות? מה גורם לסטרינגים להיות שונים זה מזה?
3 תשובות
תעבור בלולאה על שני המחרוזות, תדפיס את הערך המספרי של כל תו (ord) ותוכל לראות באיזה מקום בדיוק המחרוזות שונות.
יכול להיות הבדל אם
הקובץ שמור בתור utf-8 without BOM והקידוד בדפדפן מוגדר לא כutf-8 (או להיפך)
וגם הקישור עצמו מכיל תויים שהם מחוץ לתווך של ascii 0-255
אוקיי, הנה מה שעשיתי:
$char = $package_name;
for($i = 0; $i < strlen($char); $i++){
if($i == strlen($char) - 1)
$success = $success.ord($char[$i]);
else
$success = $success.ord($char[$i]).",";
}
echo "char(".$success.") $char";
for($i = 0; $i < strlen($char); $i++){
if($i == strlen($char) - 1)
$success = $success.ord($char[$i]);
else
$success = $success.ord($char[$i]).",";
}
echo "char(".$success.") $char";
מדפיס char(92,49) air.dynamitetrain שזה לא כל כך הגיוני...
אם אני מזין את הסטרינג ידנית לתוך המשתנה, מדפיס:
char(97,105,114,46,100,121,110,97,109,105,116,101,116,114,97,105,110) air.dynamitetrain